package com.nd.qa.shareplate.util;

import java.util.Collection;
import java.util.Map;

/**
 * @修改人：邓风森
 * @修改时间： 2015/1/6 15:23.
 */
public class CommonUtils {

    /*
     *@方法描述：判断对象不为空【字符串、集合、Map、数组】
     *
     *@参数：obj 判断对象
     *
     *@返回：true  不为空  false 空
     *
     *@修改人：邓风森
     */
    public static boolean isNotEmpty(Object obj){
        if (obj == null)
            return false;
        //字符串
        if (obj instanceof CharSequence)
            return !(((CharSequence) obj).length() == 0);
        //集合对象
        if (obj instanceof Collection)
            return !(((Collection) obj).isEmpty());
        //Map对象
        if (obj instanceof Map)
            return !(((Map) obj).isEmpty());
        //对象数组
        if (obj instanceof Object[]) {
            Object[] object = (Object[]) obj;
            if (object.length == 0) {
                return false;
            }
            boolean notEmpty = true;
            for (int i = 0; i < object.length; i++) {
                if (!isNotEmpty(object[i])) {
                    notEmpty = false;
                    break;
                }
            }
            return notEmpty;
        }
        return false;
    }

    /*
    *@方法描述：判断对象为空【字符串、集合、Map、数组】
    *
    *@参数：obj 判断对象
    *
    *@返回：true  为空  false 不为空
    *
    *@修改人：邓风森
    */
    public static boolean isEmpty(Object obj){
        if (obj == null)
            return true;
        //字符串
        if (obj instanceof CharSequence)
            return ((CharSequence) obj).length() == 0;
        //集合对象
        if (obj instanceof Collection)
            return ((Collection) obj).isEmpty();
        //Map对象
        if (obj instanceof Map)
            return ((Map) obj).isEmpty();
        //对象数组
        if (obj instanceof Object[]) {
            Object[] object = (Object[]) obj;
            if (object.length == 0) {
                return true;
            }
            boolean empty = true;
            for (int i = 0; i < object.length; i++) {
                if (!isEmpty(object[i])) {
                    empty = false;
                    break;
                }
            }
            return empty;
        }
        return false;
    }
}
